/*
 Práctica 1 asignatura Desarrollo Aplicaciones Móviles

    -Informática-

Integrantes:  Esperanza González de la Mora & Félix López Garcinuño & José Miguel Bilbao Navas
 */

package capa_interfaz;

import capa_dominio.*;
import miCartera.MiCartera;
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.AlertType;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.Item;
import javax.microedition.lcdui.ItemStateListener;
import javax.microedition.lcdui.TextField;

public class FNuevaMoneda implements CommandListener , ItemStateListener{
    private MiCartera midlet;
    private ControladorInterfaz controlador;
    private Form formularionuevamoneda;
    private TextField campoSiglas;
    private Command aceptar, regresar;
    public String cadenasiglas;//Las siglas que nos ha pasado el usuario como nueva moneda

    public FNuevaMoneda (MiCartera mimidlet, ControladorInterfaz controlador){
        //Guardo referencia al midlet principal y controlador
        this.midlet=mimidlet;
        this.controlador=controlador;

        //Creo objetos
        formularionuevamoneda=new Form("Añade nueva moneda");
        campoSiglas=new TextField("Siglas de nueva moneda","", midlet.pantallainicial.getWidth(),TextField.ANY);
        regresar=new Command("Atras",Command.BACK,1);
        aceptar=new Command("Añade", Command.OK,1);
        cadenasiglas="";

          //Enlazo Items al formulario de pantalla
        formularionuevamoneda.append(campoSiglas);

         //Enlazo objetos a Form y escucha de comandos
        formularionuevamoneda.addCommand(regresar);
        formularionuevamoneda.addCommand(aceptar);
        formularionuevamoneda.setCommandListener(this);

        //Hago escucha de Items
        formularionuevamoneda.setItemStateListener(this);

        //Establecemos como pantalla
        midlet.pantalla.setCurrent(formularionuevamoneda);

    }

    public void commandAction(Command c, Displayable d) {
        if (c==regresar){
            midlet.pantalla.setCurrent(midlet.pantallainicial);
        }else if (c==aceptar){
            controlador.estableceConexion(this);

        }
    }

    public void itemStateChanged(Item item) {
        if (item==campoSiglas){
            //Extraemos siglas de nueva moneda de un textfield y las ponemos en mayusculas
            cadenasiglas=campoSiglas.getString().toUpperCase();
        }
    }

     public void muestraErrorSiglaVacia(){
        Alert alertaerror;

        alertaerror=new Alert("Error", "No has introducido siglas", null, AlertType.ERROR);
        alertaerror.setTimeout(Alert.FOREVER);//Alerta modal
        //Establecemos alert para mostrar y posteriormente a formueditargasto
        midlet.pantalla.setCurrent(alertaerror, formularionuevamoneda);

    }

     public void muestraErrorExistenciaSigla(){
        Alert alertaerror;

        alertaerror=new Alert("No existe", "Las siglas introducidas no existen", null, AlertType.ERROR);
        alertaerror.setTimeout(Alert.FOREVER);//Alerta modal
        midlet.pantalla.setCurrent(alertaerror, formularionuevamoneda);

    }

     public void muestraErrorYaExiste(){
        Alert alertaerror;

        alertaerror=new Alert("Ya existe", "Las siglas introducidas ya existen", null, AlertType.ERROR);
        alertaerror.setTimeout(Alert.FOREVER);//Alerta modal
        midlet.pantalla.setCurrent(alertaerror, formularionuevamoneda);

    }

     public void avisoCreacionMoneda(String siglasmoneda){
        Alert alerta;

        alerta=new Alert("Aviso Creación", "Cangrulations!Has creado una nueva moneda: "+siglasmoneda, null, AlertType.INFO);
        alerta.setTimeout(Alert.FOREVER);//Alerta modal
        //Despues establecemos el form de pantallainicial
        midlet.pantalla.setCurrent(alerta, midlet.pantallainicial);

    }
}
